package com.douma.字符串;

import java.util.Scanner;

/**
 * 抖码算法，让算法学习变的简单有趣
 *
 * @作者 : 老汤
 */
public class Main_HJ20 {
    /*
    HJ20 密码验证合格程序

    描述
    密码要求:
        1.长度超过8位
        2.包括大小写字母.数字.其它符号,以上四种至少三种
        3.不能有长度大于2的包含公共元素的子串重复 （注：其他符号不含空格或换行）

    数据范围：输入的字符串长度满足 1≤n≤100

    输入描述：
        一组字符串。

    输出描述：
        如果符合要求输出：OK，否则输出NG

    示例 1
        输入：
            021Abc9000
            021Abc9Abc1
            021ABC9000
            021$bc9000
        输出：
            OK
            NG
            NG
            OK
     练习地址：https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841?tpId=37&tqId=21243&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 因为输入的是多个字符串，所以这里需要用 while 循环，不断的读取字符串，一直到结束
        while(sc.hasNext()) {
            String s = sc.nextLine();
            char[] chars = s.toCharArray();
            int m = chars.length;

            // 1. 长度必须超过 8 位
            if (m <= 8) {
                System.out.println("NG");
                continue;
            }

            // 2. 包括大小写字母、数字、其它符号，以上四种至少三种
            // 用于标记是否出现大写字母、小写字母、数字、其他字符
            int[] seen = new int[4];
            for (char c : chars) {
                if (c >= 'A' && c <= 'Z') seen[0] = 1;
                else if (c >= 'a' && c <= 'z') seen[1] = 1;
                else if (c >= '0' && c <= '9') seen[2] = 1;
                else seen[3] = 1;
            }
            if (seen[0] + seen[1] + seen[2] + seen[3] < 3) {
                System.out.println("NG");
                continue;
            }

            // 3. 不能有长度大于 2 的包含公共元素的子串重复
            boolean hasRepeat = false;
            for (int i = 0; i < m - 6; i++) {
                for (int j = i + 3; j < m - 3; j++) {
                    if (chars[i] == chars[j]
                            && chars[i + 1] == chars[j + 1]
                            && chars[i + 2] == chars[j + 2]) {
                        hasRepeat = true;
                        break;
                    }
                }
                if (hasRepeat) break;
            }

            if (hasRepeat) {
                System.out.println("NG");
            } else {
                System.out.println("OK");
            }
        }
    }
}
